<?php

class tenap_segmentoModel extends CatModel{
    
    public $tabela = "tenap_segmento";
    
    //dados especificos da categoria
    protected $categorized_model = "tenap/cliente";
    protected $multinivel_model  = "tenap/obra";
    //protected $nome_cod          = "";
    //protected $nome_cat          = "";
    //protected $nome_pai          = "";
    protected $dados             = array(
        'album' => array(
            'name'      => 'Fotos',
            'type' 	=> 'int',
            'notnull'   => true, 
            'display'   => true,
            'grid'      => true,
            'fkey'      => array(
                'model' 	=> 'galeria/album', 
                'cardinalidade' => '11',//nn 1n 11
                'keys'          => array('cod_album', 'cod_album'),
            )
        )
    );
   
    
    public function segpro_getItem($cod_item, $campo = "") {
        $var  = parent::getItem($cod_item, $campo);
        $nome = $var['catnome'];
        $_SESSION['link_segmento'] = $var['cod_categoria']."/". GetPlainName($var['catnome']);
        $_SESSION['link_segname']  = $var['catnome'];
        $qtd  = 24;
        
        $this->LoadResource("html/paginator", 'pag');
        $this->LoadResource("html", 'html');
        
        //seta os links
        $link  = $this->html->getLink("tenap/segmento/show/$cod_item/" . GetPlainName($nome));
        $page  = $this->getPage();
        $where = "tenap_obra.projeto = 's' ";
        $group = " GROUP BY cod_cliente ";
        
        //configura a paginaçao
        $this->db->Join("tenap_segmento", 'tenap_obra', array('cod_categoria'), array('cod_segmento'), $side = "LEFT");
        $this->db->Join("tenap_obra as o", 'tenap_cliente as c');
        $this->pag->setJoin($this->db->getJoin());
        $this->pag->setWhere($where . $group);
        $this->pag->Paginacao($this->tabela, $link, $qtd, $page);
        //$this->pag->selecionar($model, $campos, $where = "", $orderby = "");
        
        //faz a consulta
        $limit = $this->pag->getLimit();
        $ofset = $this->pag->getOffset();
        $campo = array("c.*");
        $where .= $group;
        $var['clientes'] = $this->db->Read(
                "tenap_segmento",
                array("c.*", 'tenap_obra.album', 'COUNT(*) AS total'), 
                $where, 
                $limit, 
                $ofset, 
                "total DESC"
        );
        //echo $this->db->getSentenca();
        
        return $var;
    }
    
    public function seg_getItem($cod_item, $campo = "") {
        $var = parent::getItem($cod_item, $campo);
        $_SESSION['link_segmento'] = $var['cod_categoria']."/". GetPlainName($var['catnome']);
        $_SESSION['link_segname']  = $var['catnome'];
        $var['clientes'] = $this->cli_paginate($cod_item, $var['catnome'], 20);
        return $var;
    }
    
    private function cli_paginate($cod_item, $nome, $qtd = 24){
        
        $this->LoadResource("html/paginator", 'pag');
        $this->LoadResource("html", 'html');
        
        //seta os links
        $link  = $this->html->getLink("tenap/segmento/show/$cod_item/" . GetPlainName($nome));
        $page  = $this->getPage();
        $where = "`cod_categoria` = '$cod_item' GROUP BY cod_cliente ";
        
        //configura a paginaçao
        $this->db->Join("tenap_segmento", 'tenap_obra', array('cod_categoria'), array('cod_segmento'), $side = "LEFT");
        $this->db->Join("tenap_obra as o", 'tenap_cliente as c');
        $this->pag->setJoin($this->db->getJoin());
        $this->pag->setWhere($where );
        $this->pag->Paginacao($this->tabela, $link, $qtd, $page);
        
        //faz a consulta
        $limit = $this->pag->getLimit();
        $ofset = $this->pag->getOffset();
        $campo = array("c.*");
        $var = $this->db->Read(
                "tenap_segmento", array("c.*", 'tenap_obra.album', 'COUNT(*) AS total'), $where, $limit, $ofset, "total DESC"
        );
        //echo $this->db->getSentenca();
        return $var;
    }
    
    
    public function setPage($page){
        $this->page = $page;
    }
    
    private function getPage(){
        return $this->page;
    }
    
    public function getDestaquesFotos($qtd = 3){
        
        //2 = número de albuns a serem excluídos da listagem, 3 é o número de albuns a ser exibido
        $max = $this->getCount() - 2 - $qtd;
        $offset = rand(0, $max);
        if($offset < 0) $offset = 0;
        return $this->selecionar(array(), "", $qtd, $offset);
    }
    
}

?>
